package com.xls.commonlibrary.util.oaid;

import static com.xls.commonlibrary.constant.Const.DEVICE_OAID;

import android.content.Context;
import android.util.Log;

import com.github.gzuliyujiang.oaid.DeviceID;
import com.github.gzuliyujiang.oaid.DeviceIdentifier;
import com.github.gzuliyujiang.oaid.IGetter;
import com.hjq.toast.Toaster;
import com.xls.commonlibrary.util.MMKVUtil;

public class OaidUtil {

    public static void getOaid(Context context) {
        // 获取IMEI，只支持Android 10之前的系统，需要READ_PHONE_STATE权限，可能为空
        Log.e("DeviceIdentifier.getIMEI", DeviceIdentifier.getIMEI(context));
        Log.e(" DeviceIdentifier.getAndroidID", DeviceIdentifier.getAndroidID(context));
        // 获取数字版权管理ID，可能为空。很鸡肋，在某些手机上还可能造成卡死或闪退，自4.2.7版本后已弃用
//        Log.e(" DeviceIdentifier.getWidevineID", DeviceIdentifier.getWidevineID());
        // 获取伪造ID，根据硬件信息生成，不会为空，有大概率会重复
//        Log.e(" DeviceIdentifier.getPseudoID", DeviceIdentifier.getPseudoID());
        // 获取GUID，随机生成，不会为空
        Log.e(" DeviceIdentifier.getAndroidID", DeviceIdentifier.getAndroidID(context));
        // 是否支持OAID/AAID
        Log.e(" DeviceID.supportedOAID", DeviceID.supportedOAID(context) + "");
        // 获取OAID/AAID，同步调用
        Log.e("DeviceIdentifier.getOAID", DeviceIdentifier.getOAID(context));

        MMKVUtil.getInstance().getKV().encode(DEVICE_OAID,DeviceIdentifier.getOAID(context));

        // 获取OAID/AAID，异步回调
        DeviceID.getOAID(context, new IGetter() {
            @Override
            public void onOAIDGetComplete(String result) {
                // 不同厂商的OAID/AAID格式是不一样的，可进行MD5、SHA1之类的哈希运算统一
                Log.e("DeviceIdentifier.getOAID,异步回掉", result);

                MMKVUtil.getInstance().getKV().encode(DEVICE_OAID,result);

//                Toaster.show("oaid " + result);
            }

            @Override
            public void onOAIDGetError(Exception error) {
                // 获取OAID/AAID失败
            }
        });


    }
}
